﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Identity;
using WeChat.CMS.OrganizationUnits;

namespace WeChat.CMS.Users
{
    public interface IUserAppService: IApplicationService
    {
        Task<IdentityUserDto> CreateAsync(IdentityUserOrgCreateDto input);
        Task<IdentityUserDto> UpdateAsync(Guid id, IdentityUserOrgUpdateDto input);
        Task<bool> AddToOrganizationUnitAsync(UseToOrganizationUnitCreationDto input);
        Task<PagedResultDto<IdentityUserDto>> GetUsersInOrganizationUnitAsync(
           OrganizationUnitUsersPagedListDto input);
        Task<bool> RemoveFromOrganizationUnitAsync(UseToOrganizationUnitDeleteDto input);
        Task<ListResultDto<OrganizationUnitEto>> GetListOrganizationUnitsAsync(Guid id, bool includeDetails = false);

        Task<List<IdentityUserDto>> GetListAllAsync();
        Task<bool> UpdateUseActiveAsync(UpdateUseActiveDto input);
        Task<bool> UpdateUseLockAsync(Guid id);
        Task<string> UpdateAvatorAsync(UpdateAvatorDto input);
        Task<bool> DeleteUseInfo(Guid userid);
    }
}
